/*
 *
 *    Copyright (c) 2021 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

// THIS FILE IS GENERATED BY ZAP

// Prevent multiple inclusion
#pragma once

// Default values for the attributes longer than a pointer,
// in a form of a binary blob
// Separate block is generated for big-endian and little-endian cases.
#if BIGENDIAN_CPU
#define GENERATED_DEFAULTS                                                                                                         \
    {                                                                                                                              \
                                                                                                                                   \
        /* Endpoint: 1, Cluster: General Commissioning (client), big-endian */                                                     \
                                                                                                                                   \
        /* 0 - FeatureMap, */                                                                                                      \
        0x00, 0x00, 0x00, 0x00,                                                                                                    \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Network Commissioning (client), big-endian */                                                 \
                                                                                                                                   \
            /* 4 - FeatureMap, */                                                                                                  \
            0x00, 0x00, 0x00, 0x01,                                                                                                \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Software Diagnostics (client), big-endian */                                                  \
                                                                                                                                   \
            /* 8 - FeatureMap, */                                                                                                  \
            0x00, 0x00, 0x00, 0x00,                                                                                                \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Thread Network Diagnostics (client), big-endian */                                            \
                                                                                                                                   \
            /* 12 - FeatureMap, */                                                                                                 \
            0x00, 0x00, 0x00, 0x00,                                                                                                \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Ethernet Network Diagnostics (client), big-endian */                                          \
                                                                                                                                   \
            /* 16 - FeatureMap, */                                                                                                 \
            0x00, 0x00, 0x00, 0x00,                                                                                                \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Pump Configuration and Control (client), big-endian */                                        \
                                                                                                                                   \
            /* 20 - FeatureMap, */                                                                                                 \
            0x00, 0x00, 0x00, 0x00,                                                                                                \
    }

#else // !BIGENDIAN_CPU
#define GENERATED_DEFAULTS                                                                                                         \
    {                                                                                                                              \
                                                                                                                                   \
        /* Endpoint: 1, Cluster: General Commissioning (client), little-endian */                                                  \
                                                                                                                                   \
        /* 0 - FeatureMap, */                                                                                                      \
        0x00, 0x00, 0x00, 0x00,                                                                                                    \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Network Commissioning (client), little-endian */                                              \
                                                                                                                                   \
            /* 4 - FeatureMap, */                                                                                                  \
            0x01, 0x00, 0x00, 0x00,                                                                                                \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Software Diagnostics (client), little-endian */                                               \
                                                                                                                                   \
            /* 8 - FeatureMap, */                                                                                                  \
            0x00, 0x00, 0x00, 0x00,                                                                                                \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Thread Network Diagnostics (client), little-endian */                                         \
                                                                                                                                   \
            /* 12 - FeatureMap, */                                                                                                 \
            0x00, 0x00, 0x00, 0x00,                                                                                                \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Ethernet Network Diagnostics (client), little-endian */                                       \
                                                                                                                                   \
            /* 16 - FeatureMap, */                                                                                                 \
            0x00, 0x00, 0x00, 0x00,                                                                                                \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Pump Configuration and Control (client), little-endian */                                     \
                                                                                                                                   \
            /* 20 - FeatureMap, */                                                                                                 \
            0x00, 0x00, 0x00, 0x00,                                                                                                \
    }

#endif // BIGENDIAN_CPU

#define GENERATED_DEFAULTS_COUNT (6)

#define ZAP_TYPE(type) ZCL_##type##_ATTRIBUTE_TYPE
#define ZAP_LONG_DEFAULTS_INDEX(index)                                                                                             \
    {                                                                                                                              \
        &generatedDefaults[index]                                                                                                  \
    }
#define ZAP_MIN_MAX_DEFAULTS_INDEX(index)                                                                                          \
    {                                                                                                                              \
        &minMaxDefaults[index]                                                                                                     \
    }
#define ZAP_EMPTY_DEFAULT()                                                                                                        \
    {                                                                                                                              \
        (uint16_t) 0                                                                                                               \
    }
#define ZAP_SIMPLE_DEFAULT(x)                                                                                                      \
    {                                                                                                                              \
        (uint16_t) x                                                                                                               \
    }

// This is an array of EmberAfAttributeMinMaxValue structures.
#define GENERATED_MIN_MAX_DEFAULT_COUNT 0
#define GENERATED_MIN_MAX_DEFAULTS                                                                                                 \
    {                                                                                                                              \
    }

#define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask
// This is an array of EmberAfAttributeMetadata structures.
#define GENERATED_ATTRIBUTE_COUNT 64
#define GENERATED_ATTRIBUTES                                                                                                       \
    {                                                                                                                              \
                                                                                                                                   \
        /* Endpoint: 1, Cluster: Identify (client) */                                                                              \
        { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */                  \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Groups (client) */                                                                            \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(3) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Scenes (client) */                                                                            \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(3) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: On/Off (client) */                                                                            \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: On/off Switch Configuration (client) */                                                       \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Level Control (client) */                                                                     \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(3) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Binary Input (Basic) (client) */                                                              \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Descriptor (client) */                                                                        \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Binding (client) */                                                                           \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Access Control (client) */                                                                    \
            { 0xFFFD, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(CLIENT) | ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                      \
              ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */                                                                       \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Bridged Actions (client) */                                                                   \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Basic (client) */                                                                             \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT) | ZAP_ATTRIBUTE_MASK(SINGLETON),                             \
              ZAP_SIMPLE_DEFAULT(3) }, /* ClusterRevision */                                                                       \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: OTA Software Update Provider (client) */                                                      \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: OTA Software Update Requestor (client) */                                                     \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Power Source Configuration (client) */                                                        \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Power Source (client) */                                                                      \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: General Commissioning (client) */                                                             \
            { 0xFFFC, ZAP_TYPE(BITMAP32), 4, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_LONG_DEFAULTS_INDEX(0) }, /* FeatureMap */            \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) },   /* ClusterRevision */       \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Network Commissioning (client) */                                                             \
            { 0xFFFC, ZAP_TYPE(BITMAP32), 4, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_LONG_DEFAULTS_INDEX(4) }, /* FeatureMap */            \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) },   /* ClusterRevision */       \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: General Diagnostics (client) */                                                               \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Software Diagnostics (client) */                                                              \
            { 0xFFFC, ZAP_TYPE(BITMAP32), 4, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_LONG_DEFAULTS_INDEX(8) }, /* FeatureMap */            \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) },   /* ClusterRevision */       \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Thread Network Diagnostics (client) */                                                        \
            { 0xFFFC, ZAP_TYPE(BITMAP32), 4, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_LONG_DEFAULTS_INDEX(12) }, /* FeatureMap */           \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) },    /* ClusterRevision */      \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: WiFi Network Diagnostics (client) */                                                          \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Ethernet Network Diagnostics (client) */                                                      \
            { 0xFFFC, ZAP_TYPE(BITMAP32), 4, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_LONG_DEFAULTS_INDEX(16) }, /* FeatureMap */           \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) },    /* ClusterRevision */      \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Bridged Device Basic (client) */                                                              \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT) | ZAP_ATTRIBUTE_MASK(SINGLETON),                             \
              ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */                                                                       \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Switch (client) */                                                                            \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: AdministratorCommissioning (client) */                                                        \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Operational Credentials (client) */                                                           \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Group Key Management (client) */                                                              \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Fixed Label (client) */                                                                       \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Boolean State (client) */                                                                     \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Mode Select (client) */                                                                       \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Door Lock (client) */                                                                         \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(3) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Window Covering (client) */                                                                   \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Barrier Control (client) */                                                                   \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Pump Configuration and Control (client) */                                                    \
            { 0xFFFC, ZAP_TYPE(BITMAP32), 4, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_LONG_DEFAULTS_INDEX(20) }, /* FeatureMap */           \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) },    /* ClusterRevision */      \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Thermostat (client) */                                                                        \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(3) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Thermostat User Interface Configuration (client) */                                           \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Color Control (client) */                                                                     \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(3) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Illuminance Measurement (client) */                                                           \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Temperature Measurement (client) */                                                           \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(3) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Pressure Measurement (client) */                                                              \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Flow Measurement (client) */                                                                  \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Relative Humidity Measurement (client) */                                                     \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Occupancy Sensing (client) */                                                                 \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */              \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Wake on LAN (client) */                                                                       \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Channel (client) */                                                                           \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Target Navigator (client) */                                                                  \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Media Playback (client) */                                                                    \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Media Input (client) */                                                                       \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Low Power (client) */                                                                         \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Keypad Input (client) */                                                                      \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Content Launcher (client) */                                                                  \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Audio Output (client) */                                                                      \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Application Launcher (client) */                                                              \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Application Basic (client) */                                                                 \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Account Login (client) */                                                                     \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Test Cluster (client) */                                                                      \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */         \
                                                                                                                                   \
            /* Endpoint: 1, Cluster: Electrical Measurement (client) */                                                            \
            { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), ZAP_SIMPLE_DEFAULT(3) }, /* ClusterRevision */              \
    }

// This is an array of EmberAfCluster structures.
#define ZAP_ATTRIBUTE_INDEX(index) ((EmberAfAttributeMetadata *) (&generatedAttributes[index]))

// Cluster function static arrays
#define GENERATED_FUNCTION_ARRAYS

#define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_##mask
#define GENERATED_CLUSTER_COUNT 60
#define GENERATED_CLUSTERS                                                                                                         \
    {                                                                                                                              \
        { 0x0003, ZAP_ATTRIBUTE_INDEX(0), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: Identify (client) */    \
            { 0x0004, ZAP_ATTRIBUTE_INDEX(1), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: Groups (client) */  \
            { 0x0005, ZAP_ATTRIBUTE_INDEX(2), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: Scenes (client) */  \
            { 0x0006, ZAP_ATTRIBUTE_INDEX(3), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: On/Off (client) */  \
            {                                                                                                                      \
                0x0007, ZAP_ATTRIBUTE_INDEX(4), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
            }, /* Endpoint: 1, Cluster: On/off Switch Configuration (client) */                                                    \
            {                                                                                                                      \
                0x0008, ZAP_ATTRIBUTE_INDEX(5), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
            }, /* Endpoint: 1, Cluster: Level Control (client) */                                                                  \
            {                                                                                                                      \
                0x000F, ZAP_ATTRIBUTE_INDEX(6), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
            }, /* Endpoint: 1, Cluster: Binary Input (Basic) (client) */                                                           \
            {                                                                                                                      \
                0x001D, ZAP_ATTRIBUTE_INDEX(7), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
            }, /* Endpoint: 1, Cluster: Descriptor (client) */                                                                     \
            { 0x001E, ZAP_ATTRIBUTE_INDEX(8), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: Binding (client) */ \
            {                                                                                                                      \
                0x001F, ZAP_ATTRIBUTE_INDEX(9), 1, 0, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
            }, /* Endpoint: 1, Cluster: Access Control (client) */                                                                 \
            {                                                                                                                      \
                0x0025, ZAP_ATTRIBUTE_INDEX(10), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Bridged Actions (client) */                                                                \
            { 0x0028, ZAP_ATTRIBUTE_INDEX(11), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: Basic (client) */  \
            {                                                                                                                      \
                0x0029, ZAP_ATTRIBUTE_INDEX(12), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: OTA Software Update Provider (client) */                                                   \
            {                                                                                                                      \
                0x002A, ZAP_ATTRIBUTE_INDEX(13), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: OTA Software Update Requestor (client) */                                                  \
            {                                                                                                                      \
                0x002E, ZAP_ATTRIBUTE_INDEX(14), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Power Source Configuration (client) */                                                     \
            {                                                                                                                      \
                0x002F, ZAP_ATTRIBUTE_INDEX(15), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Power Source (client) */                                                                   \
            {                                                                                                                      \
                0x0030, ZAP_ATTRIBUTE_INDEX(16), 2, 6, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: General Commissioning (client) */                                                          \
            {                                                                                                                      \
                0x0031, ZAP_ATTRIBUTE_INDEX(18), 2, 6, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Network Commissioning (client) */                                                          \
            {                                                                                                                      \
                0x0032, ZAP_ATTRIBUTE_INDEX(20), 0, 0, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Diagnostic Logs (client) */                                                                \
            {                                                                                                                      \
                0x0033, ZAP_ATTRIBUTE_INDEX(20), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: General Diagnostics (client) */                                                            \
            {                                                                                                                      \
                0x0034, ZAP_ATTRIBUTE_INDEX(21), 2, 6, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Software Diagnostics (client) */                                                           \
            {                                                                                                                      \
                0x0035, ZAP_ATTRIBUTE_INDEX(23), 2, 6, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Thread Network Diagnostics (client) */                                                     \
            {                                                                                                                      \
                0x0036, ZAP_ATTRIBUTE_INDEX(25), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: WiFi Network Diagnostics (client) */                                                       \
            {                                                                                                                      \
                0x0037, ZAP_ATTRIBUTE_INDEX(26), 2, 6, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Ethernet Network Diagnostics (client) */                                                   \
            {                                                                                                                      \
                0x0039, ZAP_ATTRIBUTE_INDEX(28), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Bridged Device Basic (client) */                                                           \
            { 0x003B, ZAP_ATTRIBUTE_INDEX(29), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: Switch (client) */ \
            {                                                                                                                      \
                0x003C, ZAP_ATTRIBUTE_INDEX(30), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: AdministratorCommissioning (client) */                                                     \
            {                                                                                                                      \
                0x003E, ZAP_ATTRIBUTE_INDEX(31), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Operational Credentials (client) */                                                        \
            {                                                                                                                      \
                0x003F, ZAP_ATTRIBUTE_INDEX(32), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Group Key Management (client) */                                                           \
            {                                                                                                                      \
                0x0040, ZAP_ATTRIBUTE_INDEX(33), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Fixed Label (client) */                                                                    \
            {                                                                                                                      \
                0x0041, ZAP_ATTRIBUTE_INDEX(34), 0, 0, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: User Label (client) */                                                                     \
            {                                                                                                                      \
                0x0045, ZAP_ATTRIBUTE_INDEX(34), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Boolean State (client) */                                                                  \
            {                                                                                                                      \
                0x0050, ZAP_ATTRIBUTE_INDEX(35), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Mode Select (client) */                                                                    \
            {                                                                                                                      \
                0x0101, ZAP_ATTRIBUTE_INDEX(36), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Door Lock (client) */                                                                      \
            {                                                                                                                      \
                0x0102, ZAP_ATTRIBUTE_INDEX(37), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Window Covering (client) */                                                                \
            {                                                                                                                      \
                0x0103, ZAP_ATTRIBUTE_INDEX(38), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Barrier Control (client) */                                                                \
            {                                                                                                                      \
                0x0200, ZAP_ATTRIBUTE_INDEX(39), 2, 6, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Pump Configuration and Control (client) */                                                 \
            {                                                                                                                      \
                0x0201, ZAP_ATTRIBUTE_INDEX(41), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Thermostat (client) */                                                                     \
            {                                                                                                                      \
                0x0204, ZAP_ATTRIBUTE_INDEX(42), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Thermostat User Interface Configuration (client) */                                        \
            {                                                                                                                      \
                0x0300, ZAP_ATTRIBUTE_INDEX(43), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Color Control (client) */                                                                  \
            {                                                                                                                      \
                0x0400, ZAP_ATTRIBUTE_INDEX(44), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Illuminance Measurement (client) */                                                        \
            {                                                                                                                      \
                0x0402, ZAP_ATTRIBUTE_INDEX(45), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Temperature Measurement (client) */                                                        \
            {                                                                                                                      \
                0x0403, ZAP_ATTRIBUTE_INDEX(46), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Pressure Measurement (client) */                                                           \
            {                                                                                                                      \
                0x0404, ZAP_ATTRIBUTE_INDEX(47), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Flow Measurement (client) */                                                               \
            {                                                                                                                      \
                0x0405, ZAP_ATTRIBUTE_INDEX(48), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Relative Humidity Measurement (client) */                                                  \
            {                                                                                                                      \
                0x0406, ZAP_ATTRIBUTE_INDEX(49), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Occupancy Sensing (client) */                                                              \
            {                                                                                                                      \
                0x0503, ZAP_ATTRIBUTE_INDEX(50), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Wake on LAN (client) */                                                                    \
            {                                                                                                                      \
                0x0504, ZAP_ATTRIBUTE_INDEX(51), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Channel (client) */                                                                        \
            {                                                                                                                      \
                0x0505, ZAP_ATTRIBUTE_INDEX(52), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Target Navigator (client) */                                                               \
            {                                                                                                                      \
                0x0506, ZAP_ATTRIBUTE_INDEX(53), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Media Playback (client) */                                                                 \
            {                                                                                                                      \
                0x0507, ZAP_ATTRIBUTE_INDEX(54), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Media Input (client) */                                                                    \
            {                                                                                                                      \
                0x0508, ZAP_ATTRIBUTE_INDEX(55), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Low Power (client) */                                                                      \
            {                                                                                                                      \
                0x0509, ZAP_ATTRIBUTE_INDEX(56), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Keypad Input (client) */                                                                   \
            {                                                                                                                      \
                0x050A, ZAP_ATTRIBUTE_INDEX(57), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Content Launcher (client) */                                                               \
            {                                                                                                                      \
                0x050B, ZAP_ATTRIBUTE_INDEX(58), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Audio Output (client) */                                                                   \
            {                                                                                                                      \
                0x050C, ZAP_ATTRIBUTE_INDEX(59), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Application Launcher (client) */                                                           \
            {                                                                                                                      \
                0x050D, ZAP_ATTRIBUTE_INDEX(60), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Application Basic (client) */                                                              \
            {                                                                                                                      \
                0x050E, ZAP_ATTRIBUTE_INDEX(61), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Account Login (client) */                                                                  \
            {                                                                                                                      \
                0x050F, ZAP_ATTRIBUTE_INDEX(62), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Test Cluster (client) */                                                                   \
            {                                                                                                                      \
                0x0B04, ZAP_ATTRIBUTE_INDEX(63), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
            }, /* Endpoint: 1, Cluster: Electrical Measurement (client) */                                                         \
    }

#define ZAP_CLUSTER_INDEX(index) ((EmberAfCluster *) (&generatedClusters[index]))

// This is an array of EmberAfEndpointType structures.
#define GENERATED_ENDPOINT_TYPES                                                                                                   \
    {                                                                                                                              \
        { ZAP_CLUSTER_INDEX(0), 60, 138 },                                                                                         \
    }

// Largest attribute size is needed for various buffers
#define ATTRIBUTE_LARGEST (5)

// Total size of singleton attributes
#define ATTRIBUTE_SINGLETONS_SIZE (4)

// Total size of attribute storage
#define ATTRIBUTE_MAX_SIZE (138)

// Number of fixed endpoints
#define FIXED_ENDPOINT_COUNT (1)

// Array of endpoints that are supported, the data inside
// the array is the endpoint number.
#define FIXED_ENDPOINT_ARRAY                                                                                                       \
    {                                                                                                                              \
        0x0001                                                                                                                     \
    }

// Array of profile ids
#define FIXED_PROFILE_IDS                                                                                                          \
    {                                                                                                                              \
        0x0103                                                                                                                     \
    }

// Array of device ids
#define FIXED_DEVICE_IDS                                                                                                           \
    {                                                                                                                              \
        22                                                                                                                         \
    }

// Array of device versions
#define FIXED_DEVICE_VERSIONS                                                                                                      \
    {                                                                                                                              \
        1                                                                                                                          \
    }

// Array of endpoint types supported on each endpoint
#define FIXED_ENDPOINT_TYPES                                                                                                       \
    {                                                                                                                              \
        0                                                                                                                          \
    }

// Array of networks supported on each endpoint
#define FIXED_NETWORKS                                                                                                             \
    {                                                                                                                              \
        0                                                                                                                          \
    }
